package cn.zhage.aimin.ai.docment;

import lombok.Data;
import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.messages.Message;
import org.springframework.ai.chat.messages.SystemMessage;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Date;

/*
 *
 * @author 渣哥
 */
@Data
@Document("chat")
public class Msg {

    private String text;
    private String conversationId;
    private Date date;
    private String type;
    private String message;

    public Msg(String conversationId, Message message) {
        if(message!=null){
            this.text = message.getText();
            this.type = message.getMessageType().getValue();
        }
        this.conversationId = conversationId;
        this.date = new Date();

    }

    public static Message toMessage(Msg msg) {
        return switch (msg.getType()) {
            case "user" -> new UserMessage(msg.getText());
            case "assistant" -> new AssistantMessage(msg.getText());
            case "system" -> new SystemMessage(msg.getText());
            default -> null;
        };
    }

}
